System.security.loadPolicyFile()

Доступность

Flash Player 7 (7.0.19.0)

Синтаксис

System.security.loadPolicyFile(url:String) : Void

Параметры

url Строка; URL с которого может быть загружен междоменный сертификат безопасности.

Возвращает

Ничего.

Описание

Метод; загружает файл с междоменным сертификатом безопасности, размещенном по адресу, указанному в параметре url. Flash Player использует этот файл, как механизм разрешения, с использованием которого, Flash фильм загружает данные с других серверов, за исключением своего.

Flash Player 7.0.14.0 пытался обнаружить файл с сертификатом только в одном месте: /crossdomain.xml на сервере, с которого, загружающий данные, запрос был сделан. Для попытки подключения XMLSocket, Flash Player 7.0.14.0 искал в /crossdomain.xml на HTTP сервере с портом 80, в субдомене к которому производилась попытка подключения XMLSocket. Flash Player 7.0.14.0 (и все более ранние плееры) также ограничивает подключение XMLSocket портами 1024 и выше.

С добавлением System.security.loadPolicyFile(), Flash Player 7.0.19.0 может загрузить файлы с сертификатами безопасности с произвольного адреса, как показано в следующем примере:

System.security.loadPolicyFile("http://foo.com/sub/dir/pf.xml");

По этой причине, Flash Player загружает файл с указанного URL. Любые разрешения, указанные в сертификате безопасности, применимы к тому же уровню или ниже, в виртуальной директории иерархии сервера. Следующий код продолжает предыдущий пример :

loadVariables("http://foo.com/sub/dir/vars.txt") // допустимо
loadVariables("http://foo.com/sub/dir/deep/vars2.txt") // допустимо
loadVariables("http://foo.com/elsewhere/vars3.txt") // не допустимо

Вы можете загрузить любое количество файлов безопасности, используя loadPolicyFile(). При рассмотрении запроса, который требует сертификата безопасности, Flash Player ожидает завершения всех загрузок файлов безопасности, прежде чем дать отрицательный ответ о возможности загрузки данных. Если никакой, из загруженных файлов безопасности, указанных в loadPolicyFile() не разрешает загрузку данных, Flash Player пытается обратиться к файлу, расположенному по умолчанию в /crossdomain.xml.

Использование протокола xmlsocket, с определённым номером порта , позволяет вам загружать файлы безопасности непосредственно с сервера XMLSocket, как показано в следующем примере :

System.security.loadPolicyFile("xmlsocket://foo.com:414");

Этот код предлагает Flash Player загрузить файл, с сертификатом безопасности, с определённого узла и порта. Может использоваться любой порт, не только порт 1024 и выше. После установления подключения с указанным портом, Flash Player передаёт <cross-domain-request/>, заканчивающийся байтом null. Сервер XMLSocket может быть конфигурирован таким образом, чтобы передавать файлы безопасности и осуществлять обычное XMLSocket подключение через один порт, при этом сервер ожидает <cross-domain-request/> запрос, до передачи файла безопасности. Сервер может быть настроен таким образом, чтобы принимать файлы безопасности на отдельный порт, отличном от порта с нормальным соединением, при этом, он может послать файл безопасности, как только соединение с портом файлов безопасности будет установлено. Сервер должен послать нулевой байт в конце отправки файла безопасности и после этого может прервать подключение; если сервер не прерывает подключение, Flash Player сделает это, после получения пустого указателя - байт null.

Файл безопасност,и обсдуживаемый через сервер XMLSocket, имеет тот же самый синтаксис, что и любой другой файд безопасности, за исключением того, что должны быть определены порты, через которые доступ разрешен. Когда файл безопасности работает с портом ниже, чем 1024, это означает, что доступ к файлам безопасности с портов 1024, и выше, также разрешен. Разрешенные порты определяются в атрибуте "to-ports" тега <allow-access-from>. Возможны отдельные номера портов, диапазоны портов, и подстановочные знаки. В следующем примере показан файл безопасности сервера XMLSocket :

<cross-domain-policy>
  <allow-access-from domain="*" to-ports="507" />
  <allow-access-from domain="*.foo.com" to-ports="507,516" />
  <allow-access-from domain="*.bar.com" to-ports="516-523" />
  <allow-access-from domain="www.foo.com" to-ports="507,516-523" />
  <allow-access-from domain="www.bar.com" to-ports="*" />
</cross-domain-policy>

Файл безопасности, полученный с адреса по умолчанию —/crossdomain.xml HTTP сервера с портом 80, неявно разрешает доступ ко всем портам 1024 и выше. Возможность отыскать файл безопасности для разрешения подключения через сервер XMLSocket на любом другом сервере HTTP исключена; размещение файлов безопасности для XMLSocket, возможно только на XMLSocket сервере.

Так как, возможность подключения к портам ниже 1024 нова, файл безопасности, загруженный с loadPolicyFile(), должен всегда разрешать доступ к ним, даже когда фильм соединяется с собственным субдоменом.